import java.util.HashMap;

class Solution3{
    public int subarraySum(int[] nums, int k) {
        int ret = 0,sum = 0;
        HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();
        map.put(0,1);
        for(int i = 0; i < nums.length; i++) {
            sum += nums[i];
            ret += map.getOrDefault(sum-k,0);
            map.put(sum,map.getOrDefault(sum,0) + 1);
        }
        return ret;
    }
}